package vip.xiaonuo.biz.modular.nccAi.util.nccReq;

import cn.hutool.json.JSONArray;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 * ClassName:PaymentBillParam
 * Description:
 *
 * @Author:薛守立
 * @CreateTime:2025/4/22 13:38
 */
@Setter
@Getter
@ToString
public class PaymentBillParam {
    public PaymentBillParam(String pkId, String itemId, String converId, String amount, String size, String userId, String orgCode) {
        this.top_billid = pkId;
        this.top_itemid = itemId;
        this.src_billid = pkId;
        this.src_itemid = itemId;
        this.supplier = converId;
        this.money = amount;
        this.local_money = amount;
        this.globallocal ="0";
        this.accessorynum = size;
        this.billmaker = userId;
        this.pk_org = orgCode;
        if(Objects.equals(orgCode, "10204")) this.pu_deptid="1001A51000000005IJCA";
        if(Objects.equals(orgCode, "10221")) this.pu_deptid="1001A110000000B7MKNH";
        // 格式化日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date now = new Date();
        this.billdate = sdf.format(now);

    }

    // 组织机构代码(默认供应链公司组织代码, 千方：11403 供应链：10204),报文给的是pkId,但是给code也可以
    String pk_org = "10204";
    // 交易类型编码()
    String pk_tradetype="F3-Cxx-02";
    // 期初标志
    String isinit="N";
    // 制单日期（当日）
    String billdate;
    // 往来对象1-供应商 2-部门 3-业务员
    String objtype = "1";
    // 供应商编码 y
    String supplier;
    // 部门编码 n
    String pk_dept ="1001A51000000005IJCA";
    // 业务员编码 n
    String  pk_psndoc="1001XX10000000086JNU";
    // 币种编码 y
    String  pk_currtype ="CNY";
    // 业务流程编码 n
    String  pk_busitype;
    // 付款银行账户(默认) n
    String  ap_payaccount;
    // 收款银行账户 n
    String  ap_recaccount;
    // 现金银行账户 n
    String  ap_cashaccount;
    // 结算方式编码(固定值3-非cbs网银)
    String  pk_balatype="3";
    // 原币金额(同剩余金额) y
    String  money ;
    // 组织本币汇率
    String  rate="1";
    // 组织本币金额 y
    String  local_money;
    // 集团本币汇率
    String  grouprate="1";
    // 集团本币金额 (同剩余金额)
    String  grouplocal;
    // 全局本币汇率
    String  globalrate="1";
    // 全局本币金额 (同剩余金额)
    String  globallocal ;
    // 附件张数
    String  accessorynum;
    // 结算财务组织编码（固定值） n
    String  sett_org;
    // 利润中心编码 （固定值）n
    String  pk_pcorg;
    // 业务组织编码（固定值）n
    String  pu_org;
    // 业务部门编码（固定值） n
    String  pu_deptid;
    // 业务人员编码（固定值） n
    String  pu_psndoc;
    // 制单人编码（固定值） (用户的UserID)
    String  billmaker;
    // 单据状态
    String  billstatus="-1";
    // 业务部门编码(N)
    String  approvestatus;
    // 生效状态(N)
    String  effectstatus;
    // 审核人编码(N)
    String  approver;
    // 审核日期(N)
    String  approvedate;
    // 单据确认人编码(N)
    String  confirmuser;
    // 生效日期(N)
    String  effectdate;
    // 正式打印人编码(N)
    String  officialprintuser;
    // 单据来源系统编码(N)
    String  src_syscode;
    /**
     * 以下为新增加数据
     */
    // 上层单据主键  合同主表ID
    String  top_billid;
    // 上层单据行主键 合同明细ID
    String  top_itemid;
    // 上层单据类型 FCT1 付款/FCT2 收款
    String  top_billtype="FCT1";
    // 上层交易类型 FCT1-01 付款/FCT2-01 收款
    String  top_tradetype="FCT1-01";
    // 源头单据类型 FCT1 付款/FCT2 收款
    String  src_billtype="FCT1";
    // 成源头交易类型 FCT1-01 付款/FCT2-01 收款
    String  src_tradetype="FCT1-01";
    //源头单据主键 合同主表ID
    String  src_billid;
    // 源头单据行主键 合同明细ID
    String  src_itemid;

    //不知道啥东西，但是大家都填了
    String def30 = "1001A810000000034IJ6";

    // 付款单明细
    List<PaymentItemParam> items;


}
